草庐IT

c++ - g++ c++11 constexpr 评估性能

全部标签

java - AppDynamics(性能监控工具)会降低我的生产应用程序的速度吗?

是否可以在生产环境中部署性能监控工具-AppDynamics?要监视的应用程序是标准的Java/J2EEWeb应用程序。我从未使用过AppDynamics,我担心它实际上可能会减慢我的应用程序。有人在生产中使用过AppDynamics吗?或者它应该只在测试环境中使用。 最佳答案 完全披露:我目前在AppDynamics工作。AppDynamics专为大批量生产环境而设计,但在生产环境和非生产环境中同样表现出色。它目前正在Netflix、ExactTarget、Edmunds和许多其他公司的一些世界上最大的任务关键型应用程序环境中运行

java - 提高 BigDecimal 到双转换的性能

这是BigDecimal.doubleValue()的Jdk7-b147版本publicdoubledoubleValue(){if(scale==0&&intCompact!=INFLATED)return(double)intCompact;//Somewhatinefficient,butguaranteedtowork.returnDouble.parseDouble(this.toString());}他们承认这种方式效率低下!有没有比使用这种方法更好/更快的方法? 最佳答案 没有更好的方法可以将BigDecimal转换为

java - 在这种方法调用和传入参数的情况下,是否保证 Java 评估顺序

我阅读了JLS15.7.4和15.12.4.2,但它不保证不会有任何编译器/运行时优化会改变方法参数的计算顺序。假设以下代码:publicstaticvoidmain(String[]args){MyObjectobj=newMyObject();methodRelyingOnEvalOrder(obj,obj.myMethod());}publicstaticObjectmethodRelyingOnEvalOrder(MyObjectobj,Objectinput){if(obj.myBoolean())returnnull;elsereturninput;}是否保证编译器或运行时

java - 如果我在循环外评估数组的大小,运行时效率会有差异吗?

迭代元素(在本例中为整数)数组的传统方法如下:int[]array={5,10,15};for(inti=0;i但是,这是否意味着在每次迭代后都会重新评估“array.length”?这样做不是更有效率吗?:int[]array={5,10,15};intnoOfElements=array.length;for(inti=0;i这样,(据我了解)程序只需计算一次,然后查找“noOfElements”变量的值。注意:我知道增强的for循环,但是当您想使用正在递增的变量(本例中的“i”)来实现其他目的时,不能使用它在for循环中。我怀疑这实际上是一个问题,即Java编译器是否有能力实现“

java - Cassandra 批量查询与单次插入性能

我使用Cassandrajava驱动程序。我每秒收到150k个请求,我将这些请求插入到具有不同分区键的8个表中。我的问题是哪种方法更好:批量插入这些表一个一个插入。我问这个问题是因为,考虑到我的请求大小(150k),批处理听起来是更好的选择,但因为所有表都有不同的分区键,批处理看起来很昂贵。 最佳答案 请从以下链接查看我的回答:Cassandrabatchqueryperformanceontableshavingdifferentpartitionkeys批处理不是为了提高性能。它们用于确保原子性和隔离性。Batchingcanb

java - 使用 try-catch over if 条件以在 java 中以最小的性能影响安全地设置值

在这里,我的主要目标是安全地设置值,而不会对性能(速度、内存、CPU等)产生影响。我有一个愚蠢的选择(风格不佳)也在下面提到。那么,最好的方法是什么?选项1?选项2?还是另一个?选项1:if(animalData!=null&&animalData.getBreedData()!=null&&dogx.getBreed()!=null&&dogx.getBreed().getBreedCode()!=null&&animalData.getBreedData().get(dogx.getBreed().getBreedCode())!=null){dogx.getBreed().set

java - string.replaceAll() 性能是否受到字符串不变性的影响?

假设我在替换了1,000个匹配实例的大字符串上调用了replaceAll()。这是否意味着由于字符串不可变性而在过程中创建并重新分配了1,000个字符串?有没有更快的替代方案? 最佳答案 如果你深入研究String,您会看到它将replaceAll()委托(delegate)给Pattern&Matcher和Matcher.replaceAll()使用StringBuilder来存储最终返回的值。所以不,String.replaceAll()不会创建超过少量的对象。 关于java-str

java - 线程数和 Java 应用程序性能

您好:我有一个多线程Java应用程序。当前线程大小已经是100。我们目前使用的是4核CPU。但在不久的将来,CPU核心将增加一倍,甚至达到32核。为了充分利用内核,我们需要增加线程池的大小。但是您可能知道(也许我错了),Java在有10000个线程时很好,但是当线程为200、500、1000个线程时可能会出现性能问题。那么我们是否应该使用其他编程语言,例如scala。我的担心有道理吗? 最佳答案 使用现代JVM,Java进程可以创建操作系统允许的任意数量的线程。您的应用程序能否充分利用这些线程取决于您的应用程序的设计。如果可伸缩性是

java - Log4j 日志会降低应用程序性能吗?

日志记录会降低应用程序性能吗?以及如何限制在日志文件中打印display-tags日志?例如。我的日志文件有以下日志[2012-06-2015:52:06,290]org.displaytag.tags.TableTagisFirstIteration684-[data]firstiteration=true(rownumber=1)[2012-06-2015:52:06,290]org.displaytag.tags.TableTagisFirstIteration684-[data]firstiteration=true(rownumber=1)[2012-06-2015:52:0

java - 在 Selenium Webdriver 中,哪个在性能方面更好 Linktext 或 css?

在Selenium中,最好使用定位器ID定位元素。最小定位器是XPath(如果我错了请纠正我)。那么,人们应该使用定位器来识别元素是否有任何优先顺序或顺序? 最佳答案 这是在https://stackoverflow.com/questions上定位元素的不同方法的一些基准测试:Chrome52,驱动程序2.2215msforexecute_script("return[].find.call(document.getElementsByTagName('a'),function(e){returne.textContent.tri